/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.filter;

import ksvg.core.SVGFilter;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;

/**
 * <p>This filter primitive fills a target rectangle with a repeated, tiled
 * pattern of an input image. The target rectangle is as large as the <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveSubRegion">filter
 * primitive subregion</a> established by the <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveXAttribute">‘x’</a>,
 * <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveYAttribute">‘y’</a>,
 * <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveWidthAttribute">‘width’</a>
 * and <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveHeightAttribute">‘height’</a>
 * attributes on the <a
 * href="http://www.w3.org/TR/SVG/filters.html#feTileElement">‘feTile’</a>
 * element.</p> <p>Typically, the input image has been defined with its own <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveSubRegion">filter
 * primitive subregion</a> in order to define a reference tile. <a
 * href="http://www.w3.org/TR/SVG/filters.html#feTileElement">‘feTile’</a>
 * replicates the reference tile in both X and Y to completely fill the target
 * rectangle. The top/left corner of each given tile is at location
 * <code>(x+i*width,y+j*height)</code>, where
 * <code>(x,y)</code> represents the top/left of the input image's filter
 * primitive subregion,
 * <code>width</code> and
 * <code>height</code> represent the width and height of the input image's
 * filter primitive subregion, and
 * <code>i</code> and
 * <code>j</code> can be any integer value. In most cases, the input image will
 * have a smaller <a
 * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveSubRegion">filter
 * primitive subregion</a> than the <a
 * href="http://www.w3.org/TR/SVG/filters.html#feTileElement">‘feTile’</a> in
 * order to achieve a repeated pattern effect.</p> <p>Implementers must take
 * appropriate measures in constructing the tiled image to avoid artifacts
 * between tiles, particularly in situations where the user to device transform
 * includes shear and/or rotation. Unless care is taken, interpolation can lead
 * to edge pixels in the tile having opacity values lower or higher than
 * expected due to the interaction of painting adjacent tiles which each have
 * partial overlap with particular pixels.</p>
 */
@JSFComponent(name = "svg:Tile",
type = "tk.eigh.svg.Tile",
family = "filter.Tile",
clazz = "ksvg.filter.Tile",
tagClass = "ksvg.tags.filter.TileTag",
defaultRendererType = "filter.SVGTileRenderer")
public abstract class AbstractTile extends SVGFilter {
}